from abc import ABC, abstractmethod
from typing import Dict, Any
from .types import VideoResponse, ProcessingResult

class IVideoEncoder(ABC):
    """视频编码器接口"""
    @abstractmethod
    def encode_video(self, video_path: str) -> str:
        """将视频文件编码为base64"""
        pass

class IVideoProcessor(ABC):
    """视频处理器接口"""
    @abstractmethod
    async def process_video(
        self, 
        video_path: str, 
        text_prompt: str
    ) -> ProcessingResult:
        """处理视频文件"""
        pass

class IModelCaller(ABC):
    """模型调用器接口"""
    @abstractmethod
    async def create_completion(
        self, 
        video_base64: str, 
        text_prompt: str
    ) -> VideoResponse:
        """创建模型调用"""
        pass 